git で変更が追跡されないようにする方法
untracked なファイルの場合
1. .gitignore に記述する
自明
2. .git/info/exclude に記述する
この内容はリモートを跨ぐと同期されない
ユースケース
自分用のログなどを配置する場合
track したくないけどコーディングエージェント(ignored ファイルへのアクセスを禁止している)にファイルアクセスさせたい場合
tracked なファイルの場合
1. skip-worktree
変更確認をスキップする
リモートで更新されて上書きされる時は警告される
適用する
git update-index --skip-worktree <ファイルパス>
解除する
git update-index --no-skip-worktree <ファイルパス>
設定はファイル単位のみ.ディレクトリでやりたい場合は一つずつ
git ls-files <ディレクトリ名> | xargs git update-index --skip-worktree
2. assume-unchanged
変更確認をスキップする
巨大なファイルの変更確認をスキップして高速化するのが本来の目的
リモートで更新された場合などに同期すると上書きされる場合がある
適用する
git update-index --assume-unchanged <ファイルパス>
解除する
git update-index --no-assume-unchanged <ファイルパス>